{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "source": [
    "import pandas as pd\r\n",
    "import numpy as np\r\n",
    "from sklearn.neighbors import KNeighborsClassifier\r\n",
    "from sklearn.model_selection import cross_val_score\r\n",
    "from sklearn.model_selection import train_test_split\r\n",
    "from sklearn.ensemble import RandomForestClassifier\r\n",
    "from sklearn.metrics import accuracy_score"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "import the data"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "source": [
    "data = pd.read_csv('Data/Defacement_BestFirst.csv')\r\n",
    "data"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>domain_token_count</th>\n",
       "      <th>avgpathtokenlen</th>\n",
       "      <th>tld</th>\n",
       "      <th>ArgUrlRatio</th>\n",
       "      <th>NumberofDotsinURL</th>\n",
       "      <th>Arguments_LongestWordLength</th>\n",
       "      <th>spcharUrl</th>\n",
       "      <th>delimeter_Domain</th>\n",
       "      <th>delimeter_path</th>\n",
       "      <th>NumberRate_DirectoryName</th>\n",
       "      <th>SymbolCount_Domain</th>\n",
       "      <th>Entropy_Domain</th>\n",
       "      <th>class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.524691</td>\n",
       "      <td>11</td>\n",
       "      <td>79</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "      <td>benign</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.515723</td>\n",
       "      <td>11</td>\n",
       "      <td>76</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "      <td>benign</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.465278</td>\n",
       "      <td>10</td>\n",
       "      <td>61</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "      <td>benign</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.416667</td>\n",
       "      <td>9</td>\n",
       "      <td>49</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "      <td>benign</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>9.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.356061</td>\n",
       "      <td>4</td>\n",
       "      <td>41</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0.25</td>\n",
       "      <td>1</td>\n",
       "      <td>0.863489</td>\n",
       "      <td>benign</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15706</th>\n",
       "      <td>2</td>\n",
       "      <td>2.8</td>\n",
       "      <td>2</td>\n",
       "      <td>0.054054</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "      <td>Defacement</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15707</th>\n",
       "      <td>2</td>\n",
       "      <td>2.6</td>\n",
       "      <td>2</td>\n",
       "      <td>0.055556</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "      <td>Defacement</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15708</th>\n",
       "      <td>2</td>\n",
       "      <td>34.6</td>\n",
       "      <td>2</td>\n",
       "      <td>0.010204</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "      <td>Defacement</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15709</th>\n",
       "      <td>2</td>\n",
       "      <td>3.25</td>\n",
       "      <td>2</td>\n",
       "      <td>0.057143</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "      <td>Defacement</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15710</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>0.074074</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "      <td>Defacement</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>15711 rows × 13 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       domain_token_count avgpathtokenlen  tld  ArgUrlRatio  \\\n",
       "0                       2            13.5    2     0.524691   \n",
       "1                       2            13.5    2     0.515723   \n",
       "2                       2            13.5    2     0.465278   \n",
       "3                       2            13.5    2     0.416667   \n",
       "4                       2             9.5    2     0.356061   \n",
       "...                   ...             ...  ...          ...   \n",
       "15706                   2             2.8    2     0.054054   \n",
       "15707                   2             2.6    2     0.055556   \n",
       "15708                   2            34.6    2     0.010204   \n",
       "15709                   2            3.25    2     0.057143   \n",
       "15710                   2               2    2     0.074074   \n",
       "\n",
       "       NumberofDotsinURL  Arguments_LongestWordLength  spcharUrl  \\\n",
       "0                     11                           79          3   \n",
       "1                     11                           76          3   \n",
       "2                     10                           61          3   \n",
       "3                      9                           49          3   \n",
       "4                      4                           41          6   \n",
       "...                  ...                          ...        ...   \n",
       "15706                  2                           -1          3   \n",
       "15707                  2                           -1          3   \n",
       "15708                  2                           -1          2   \n",
       "15709                  2                           -1          3   \n",
       "15710                  2                           -1          2   \n",
       "\n",
       "       delimeter_Domain  delimeter_path  NumberRate_DirectoryName  \\\n",
       "0                     0              10                      0.00   \n",
       "1                     0              10                      0.00   \n",
       "2                     0               9                      0.00   \n",
       "3                     0               8                      0.00   \n",
       "4                     0               3                      0.25   \n",
       "...                 ...             ...                       ...   \n",
       "15706                 0               2                      0.00   \n",
       "15707                 0               2                      0.00   \n",
       "15708                 0               3                      0.00   \n",
       "15709                 0               1                      0.00   \n",
       "15710                 0               1                      0.00   \n",
       "\n",
       "       SymbolCount_Domain  Entropy_Domain       class  \n",
       "0                       1        0.860529      benign  \n",
       "1                       1        0.860529      benign  \n",
       "2                       1        0.860529      benign  \n",
       "3                       1        0.860529      benign  \n",
       "4                       1        0.863489      benign  \n",
       "...                   ...             ...         ...  \n",
       "15706                   1        0.683641  Defacement  \n",
       "15707                   1        0.683641  Defacement  \n",
       "15708                   1        0.683641  Defacement  \n",
       "15709                   1        0.683641  Defacement  \n",
       "15710                   1        0.683641  Defacement  \n",
       "\n",
       "[15711 rows x 13 columns]"
      ]
     },
     "metadata": {},
     "execution_count": 3
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "source": [
    "df = data['class']\r\n",
    "df.value_counts(normalize = True)"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "Defacement    0.504742\n",
       "benign        0.495258\n",
       "Name: class, dtype: float64"
      ]
     },
     "metadata": {},
     "execution_count": 4
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "source": [
    "df2 = data.replace('benign', '1').replace('Defacement', '0')\r\n",
    "df2 = df2.replace('?', '0')"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "source": [
    "x = df2.drop(['class'], axis = 1)\r\n",
    "y = df2['class']\r\n",
    "x"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>domain_token_count</th>\n",
       "      <th>avgpathtokenlen</th>\n",
       "      <th>tld</th>\n",
       "      <th>ArgUrlRatio</th>\n",
       "      <th>NumberofDotsinURL</th>\n",
       "      <th>Arguments_LongestWordLength</th>\n",
       "      <th>spcharUrl</th>\n",
       "      <th>delimeter_Domain</th>\n",
       "      <th>delimeter_path</th>\n",
       "      <th>NumberRate_DirectoryName</th>\n",
       "      <th>SymbolCount_Domain</th>\n",
       "      <th>Entropy_Domain</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.524691</td>\n",
       "      <td>11</td>\n",
       "      <td>79</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.515723</td>\n",
       "      <td>11</td>\n",
       "      <td>76</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.465278</td>\n",
       "      <td>10</td>\n",
       "      <td>61</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>13.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.416667</td>\n",
       "      <td>9</td>\n",
       "      <td>49</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.860529</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>9.5</td>\n",
       "      <td>2</td>\n",
       "      <td>0.356061</td>\n",
       "      <td>4</td>\n",
       "      <td>41</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0.25</td>\n",
       "      <td>1</td>\n",
       "      <td>0.863489</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15706</th>\n",
       "      <td>2</td>\n",
       "      <td>2.8</td>\n",
       "      <td>2</td>\n",
       "      <td>0.054054</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15707</th>\n",
       "      <td>2</td>\n",
       "      <td>2.6</td>\n",
       "      <td>2</td>\n",
       "      <td>0.055556</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15708</th>\n",
       "      <td>2</td>\n",
       "      <td>34.6</td>\n",
       "      <td>2</td>\n",
       "      <td>0.010204</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15709</th>\n",
       "      <td>2</td>\n",
       "      <td>3.25</td>\n",
       "      <td>2</td>\n",
       "      <td>0.057143</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15710</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>0.074074</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0.683641</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>15711 rows × 12 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       domain_token_count avgpathtokenlen  tld  ArgUrlRatio  \\\n",
       "0                       2            13.5    2     0.524691   \n",
       "1                       2            13.5    2     0.515723   \n",
       "2                       2            13.5    2     0.465278   \n",
       "3                       2            13.5    2     0.416667   \n",
       "4                       2             9.5    2     0.356061   \n",
       "...                   ...             ...  ...          ...   \n",
       "15706                   2             2.8    2     0.054054   \n",
       "15707                   2             2.6    2     0.055556   \n",
       "15708                   2            34.6    2     0.010204   \n",
       "15709                   2            3.25    2     0.057143   \n",
       "15710                   2               2    2     0.074074   \n",
       "\n",
       "       NumberofDotsinURL  Arguments_LongestWordLength  spcharUrl  \\\n",
       "0                     11                           79          3   \n",
       "1                     11                           76          3   \n",
       "2                     10                           61          3   \n",
       "3                      9                           49          3   \n",
       "4                      4                           41          6   \n",
       "...                  ...                          ...        ...   \n",
       "15706                  2                           -1          3   \n",
       "15707                  2                           -1          3   \n",
       "15708                  2                           -1          2   \n",
       "15709                  2                           -1          3   \n",
       "15710                  2                           -1          2   \n",
       "\n",
       "       delimeter_Domain  delimeter_path  NumberRate_DirectoryName  \\\n",
       "0                     0              10                      0.00   \n",
       "1                     0              10                      0.00   \n",
       "2                     0               9                      0.00   \n",
       "3                     0               8                      0.00   \n",
       "4                     0               3                      0.25   \n",
       "...                 ...             ...                       ...   \n",
       "15706                 0               2                      0.00   \n",
       "15707                 0               2                      0.00   \n",
       "15708                 0               3                      0.00   \n",
       "15709                 0               1                      0.00   \n",
       "15710                 0               1                      0.00   \n",
       "\n",
       "       SymbolCount_Domain  Entropy_Domain  \n",
       "0                       1        0.860529  \n",
       "1                       1        0.860529  \n",
       "2                       1        0.860529  \n",
       "3                       1        0.860529  \n",
       "4                       1        0.863489  \n",
       "...                   ...             ...  \n",
       "15706                   1        0.683641  \n",
       "15707                   1        0.683641  \n",
       "15708                   1        0.683641  \n",
       "15709                   1        0.683641  \n",
       "15710                   1        0.683641  \n",
       "\n",
       "[15711 rows x 12 columns]"
      ]
     },
     "metadata": {},
     "execution_count": 6
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "source": [],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "source": [
    "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = None)\r\n",
    "k_range = range(1,10)\r\n",
    "k_score = []\r\n",
    "for i in k_range:\r\n",
    "    clf = RandomForestClassifier(max_depth = i)\r\n",
    "    clf.fit(x_train, y_train)\r\n",
    "    score = cross_val_score(clf, x, y, cv = 5, scoring = 'accuracy')\r\n",
    "    k_score.append(score.mean())\r\n",
    "    \r\n",
    "k_score\r\n",
    "\r\n"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "[0.7537551950288933,\n",
       " 0.7398150295292115,\n",
       " 0.7482172805581924,\n",
       " 0.7409607560515087,\n",
       " 0.7496813162042776,\n",
       " 0.7452255555422789,\n",
       " 0.7494267013093063,\n",
       " 0.7591657210419606,\n",
       " 0.7571288018821897]"
      ]
     },
     "metadata": {},
     "execution_count": 7
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "source": [
    "import matplotlib.pyplot as plt"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "source": [
    "plt.plot(k_range, k_score)\r\n",
    "plt.xlabel('value of k')\r\n",
    "plt.ylabel('Score of different max_depth')\r\n",
    "plt.show()\r\n",
    "d1 = dict(zip(k_range, k_score))\r\n",
    "depth = max(d1, key = lambda x:d1[x])\r\n",
    "print('the most suitable depth is:', depth)"
   ],
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "the most suitable depth is: 8\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "source": [
    "clf = RandomForestClassifier(max_depth = 9)\r\n",
    "clf.fit(x_train, y_train)\r\n",
    "label = clf.predict(x_test)"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "source": [
    "accuracy_score(label, y_test)"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.9891823098950048"
      ]
     },
     "metadata": {},
     "execution_count": 11
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "source": [
    "y_train"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "8699     1\n",
       "57       0\n",
       "12828    1\n",
       "9745     1\n",
       "11832    1\n",
       "        ..\n",
       "1173     0\n",
       "13660    1\n",
       "8538     0\n",
       "10413    1\n",
       "5008     1\n",
       "Name: class, Length: 12568, dtype: object"
      ]
     },
     "metadata": {},
     "execution_count": 12
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "source": [
    "length_one = df2['avgpathtokenlen']\r\n",
    "length_two = df2['Arguments_LongestWordLength']\r\n",
    "class_clo = df2['class']"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "source": [
    "df3 = pd.concat([length_one, length_two, class_clo], axis = 1)\r\n",
    "df3"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>avgpathtokenlen</th>\n",
       "      <th>Arguments_LongestWordLength</th>\n",
       "      <th>class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>13.5</td>\n",
       "      <td>79</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>13.5</td>\n",
       "      <td>76</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>13.5</td>\n",
       "      <td>61</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>13.5</td>\n",
       "      <td>49</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9.5</td>\n",
       "      <td>41</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15706</th>\n",
       "      <td>2.8</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15707</th>\n",
       "      <td>2.6</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15708</th>\n",
       "      <td>34.6</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15709</th>\n",
       "      <td>3.25</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15710</th>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>15711 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      avgpathtokenlen  Arguments_LongestWordLength class\n",
       "0                13.5                           79     1\n",
       "1                13.5                           76     1\n",
       "2                13.5                           61     1\n",
       "3                13.5                           49     1\n",
       "4                 9.5                           41     1\n",
       "...               ...                          ...   ...\n",
       "15706             2.8                           -1     0\n",
       "15707             2.6                           -1     0\n",
       "15708            34.6                           -1     0\n",
       "15709            3.25                           -1     0\n",
       "15710               2                           -1     0\n",
       "\n",
       "[15711 rows x 3 columns]"
      ]
     },
     "metadata": {},
     "execution_count": 14
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "source": [
    "length = df3.drop(['class'], axis = 1)\r\n",
    "y1 = df3['class']"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "source": [
    "X1_train, X1_test, y1_train, y1_test = train_test_split(length, y1, train_size = 0.8, random_state = 0)"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "source": [
    "clf2 = RandomForestClassifier(max_depth = 9)\r\n",
    "clf2.fit(X1_train, y1_train)"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "RandomForestClassifier(max_depth=9)"
      ]
     },
     "metadata": {},
     "execution_count": 17
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "source": [
    "conquer = clf2.predict(X1_test)\r\n"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "source": [
    "accuracy_score(conquer, y1_test)"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "0.892141266306077"
      ]
     },
     "metadata": {},
     "execution_count": 19
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "source": [],
   "outputs": [],
   "metadata": {}
  }
 ],
 "metadata": {
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.8.11 64-bit ('ml-networking': conda)"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.11"
  },
  "interpreter": {
   "hash": "20bebc860e821dfc8c3402aa900049950a23cadb8eca4814f2eb319ccf2768b5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}